package les

import grails.test.*

class LoginTests extends GroovyTestCase {
    protected void setUp() {
        super.setUp()
    }

    protected void tearDown() {
        super.tearDown()
    }

    //teste para login com sucesso de administrador
	void testAdministradorLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte@gmail.com",
			senha : "123456",
			tipo : "Administrador"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte@gmail.com"
		controlador.params.senha =  "123456"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com sucesso de jota
	void testJotaLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte1@gmail.com",
			senha : "123456",
			tipo : "Jota"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte1@gmail.com"
		controlador.params.senha =  "123456"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com sucesso de coordenador de circulo
	void testCoordenadorCirculoLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte2@gmail.com",
			senha : "123456",
			tipo : "Coordenador de Circulo"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte2@gmail.com"
		controlador.params.senha =  "123456"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com sucesso de coordenador de equipe
	void testCoordenadorEquipeLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte3@gmail.com",
			senha : "123456",
			tipo : "Coordenador de Equipe"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte3@gmail.com"
		controlador.params.senha =  "123456"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com insucesso de administrador
	void testAdministradorNaoLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte4@gmail.com",
			senha : "123456",
			tipo : "Administrador"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte4@gmail.com"
		controlador.params.senha =  "123455"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com insucesso de jota
	void testJotaNaoLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte5@gmail.com",
			senha : "123456",
			tipo : "Jota"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte5@gmail.com"
		controlador.params.senha =  "123455"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com insucesso de coordenador de circulo
	void testCoordCirculoNaoLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte6@gmail.com",
			senha : "123456",
			tipo : "Coordenador de Circulo"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte6@gmail.com"
		controlador.params.senha =  "123455"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
	
	//teste para login com insucesso de coordenador de equipe
	void testCoordEquipeNaoLogado() {
		def usuarioTeste = new Usuario(
			email : "laerte7@gmail.com",
			senha : "123456",
			tipo : "Coordenador de Equipe"
			);
		
		assertTrue usuarioTeste.validate()
		usuarioTeste.save();
		
		def controlador = new UsuarioController()
		controlador.params.email = "laerte7@gmail.com"
		controlador.params.senha =  "123455"
		
		controlador.autenticar()
				
		assertEquals "/usuario/login", controlador.response.redirectedUrl
	}
}
